package com.smart.system.domain;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.smart.common.annotation.Excel;
import com.smart.common.core.domain.BaseEntity;

/**
 * 员工对象 employee
 *
 * @author smart
 * @date 2024-09-11
 */
@Data
@Builder
@TableName("employee")
@EqualsAndHashCode(callSuper = true)
@AllArgsConstructor
@NoArgsConstructor
public class Employee extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @Schema(description ="${comment}")
    @TableField(value = "id",exist = true)
    @TableId(type = IdType.AUTO)
    private Integer id;

    @Schema(description ="员工工号")
    @TableField(value = "user_number",exist = true)
    private String userNumber;

    /** 员工名称 */
    @Excel(name = "员工名称")
    @Schema(description ="员工名称")
    @TableField(value = "name",exist = true)
    private String name;

    @Excel(name = "员工手机号")
    @Schema(description ="员工手机号")
    @TableField(value = "phone",exist = true)
    private String phone;

    /** 部门名称 */
    @Excel(name = "部门名称")
    @Schema(description ="部门名称")
    @TableField(value = "dept_name",exist = true)
    private String deptName;

    /** 部门id */
    @Excel(name = "部门id")
    @Schema(description ="部门id")
    @TableField(value = "dept_id",exist = true)
    private Long deptId;

    /** 职位 */
    @Excel(name = "职位")
    @Schema(description ="职位")
    @TableField(value = "position",exist = true)
    private Integer position;

    /** 职位名称(回显数据) */
    @Excel(name = "职位名称")
    @Schema(description ="职位名称")
    @TableField(exist = false)
    private String positionName;

    /** 入职日期 */
    @Excel(name = "入职日期")
    @Schema(description ="入职日期")
    @TableField(value = "hire_date",exist = true)
    private String hireDate;

    /** 乐观锁 */
    @Excel(name = "乐观锁")
    @Schema(description ="乐观锁")
    @TableField(value = "revision",exist = true)
    private String revision;

    /** 是否启用;0启用1冻结 */
    @Excel(name = "是否启用;0启用1冻结")
    @Schema(description ="是否启用;0启用1冻结")
    @TableField(value = "status",exist = true,fill = FieldFill.INSERT)
    private String status;

    /** 是否删除;0正常1删除 */
    @Schema(description ="是否启用;0正常1删除")
    @TableField(value = "del_flag",exist = true,fill = FieldFill.INSERT)
    private String delFlag;

    /** 头像 **/
    @Schema(description ="头像")
    @TableField(value = "photo",exist = true)
    private String photo;

    @Schema(description = "是否勾选 0勾选1未勾选(回显参数,勿传)")
    @TableField(exist = false)
    private Integer isChecked;

    @Schema(description = "手表imei号")
    @TableField(exist = true)
    private String imei;

    @Schema(description = "心率")
    @TableField(exist = true)
    private String heart;

    @Schema(description = "体温")
    @TableField(exist = true)
    private String temperature;

    @Schema(description = "血压高压")
    @TableField(exist = true)
    private String systolic;

    @Schema(description = "血压低压")
    @TableField(exist = true)
    private String diastolic;

    @Schema(description = "血氧")
    @TableField(exist = true)
    private String ox;

    @Schema(description = "电量")
    @TableField(exist = true)
    private String battery;

    @Schema(description = "是否在线")
    @TableField(exist = true)
    private Integer online;

    @Schema(description = "手表电话")
    @TableField(exist = true)
    private String braceletPhone;

    @Schema(description = "定位间隔时间（分钟数），例如 \"5\" 表示5分钟。特殊情况下 \"0.11\" 表示11秒，\"0.12\" 表示12秒")
    @TableField(exist = true)
    private String locationTimeInterval;

    @Schema(description = "心率间隔时间（分钟数），例如 5 表示5分钟")
    @TableField(exist = true)
    private String heartRateTimeInterval;

    @Schema(description = "血压间隔时间（分钟数），空字符串表示清除")
    @TableField(exist = true)
    private String bpi;

    @Schema(description = "体温间隔时间（分钟数），空字符串表示清除")
    @TableField(exist = true)
    private String tpi;

    @Schema(description = "血氧间隔时间（分钟数），空字符串表示清除")
    @TableField(exist = true)
    private String oxi;

    @Schema(description = "紧急联系人1")
    @TableField(exist = true)
    private String sos1;

    @Schema(description = "紧急联系人2")
    @TableField(exist = true)
    private String sos2;

    @Schema(description = "紧急联系人3")
    @TableField(exist = true)
    private String sos3;

    @Schema(description = "最大心率阈值，空字符串表示清除")
    @TableField(exist = true)
    private String maxHeartRate;

    @Schema(description = "最小心率阈值，空字符串表示清除")
    @TableField(exist = true)
    private String minHeartRate;

    @Schema(description = "最大收缩压阈值（高压），空字符串表示清除")
    @TableField(exist = true)
    private String bpHighMax;

    @Schema(description = "最小收缩压阈值（高压），空字符串表示清除")
    @TableField(exist = true)
    private String bpHighMin;

    @Schema(description = "最大舒张压阈值（低压），空字符串表示清除")
    @TableField(exist = true)
    private String bpLowMax;

    @Schema(description = "最小舒张压阈值（低压），空字符串表示清除")
    @TableField(exist = true)
    private String bpLowMin;

    @Schema(description = "最大血氧阈值，空字符串表示清除")
    @TableField(exist = true)
    private String bloodOxMax;

    @Schema(description = "最小血氧阈值，空字符串表示清除")
    @TableField(exist = true)
    private String bloodOxMin;

    @Schema(description = "最大体温，空字符串表示清除")
    @TableField(exist = true)
    private String tempMax;

    @Schema(description = "最小体温，空字符串表示清除")
    @TableField(exist = true)
    private String tempMin;

    @Schema(description = "跌倒报警开关状态，0表示关闭，1表示开启")
    @TableField(exist = true)
    private String fallDown;

    @Schema(description = "关闭间隔上传设置，1=关闭定位, 2=关闭心率, 3=关闭血氧, 4=关闭体温, 5=关闭血压")
    @TableField(exist = true)
    private String closeInter;

    @Schema(description = "电量告警阈值")
    @TableField(exist = true)
    private String batteryCapacity;
}
